Automated transaction machines are known in the prior art. Automated transaction machines are used to electronically carry out transfers representative of value. Automated transaction machines include for example, cash dispensers, ticket dispensers, scrip dispensers, gaming machines, Automated Teller Machines (ATMs) and other self service terminals. For purposes of convenience all such automated transaction machines will be referred to herein as ATMs unless otherwise specifically indicated.
ATMs may include various types of transaction function devices. These devices are operated to carry out transactions. Different types of ATMs include different types of devices. The different types of devices enable the ATM to carry out different types of transactions. For example, some types of ATMs include a depository for accepting deposits while other ATMs do not. Some ATMs have a “touch screen” while others have separate displays and input buttons. ATMs can also be fitted with devices such as cash and coin acceptors, statement printers, check validators, bill acceptors, thumb print readers and other types of devices, while other ATMs do not include such devices.
Many financial institutions wish to add new functionality to their existing ATMs. For example, a bank with ATMs for dispensing cash may wish to add a statement printer to each of the ATMs for printing a customer's banking statement. Such new functionality usually requires additional software modifications to the ATM in addition to the new hardware. Unfortunately the process of updating ATM software is typically complicated by the fact that many financial institutions purchase ATM hardware from more than one manufacturer. Thus to add new software for performing a new function such as printing banking statements, separate applications must be written or modified for each vendor specific ATM platform. Porting applications to multiple ATM platforms significantly reduces the productivity of the ATM software developers. Consequently, there exists a need for an architecture that enables developers to write ATM applications that work without modification on a plurality of proprietary ATM platforms.
To achieve this goal industry standards are being developed which are designed to enable ATM hardware and software to be cross-vender compatible. One example of such a standard is WOSA/XFS (Windows Open Services Architecture/eXtensions for Financial Services) which is defined by the CEN/ISSS XFS standard committee. FIG. 1 shows a schematic view of the standard WOSA/XFS architecture. An exemplary WOSA/XFS enabled ATM 110 may include a WOSA/XFS Manager 112. The WOSA/XFS Manager 112 includes a standardized interface to enable an ATM terminal application 114 to communicate with ATM transaction function devices 116. Each transaction function device 116 includes a corresponding service provider interface (SP) 118. The SPs 118 are supplied by the vendors of the ATM devices 116 and are specially designed to accept requests from the WOSA/XFS Manager 112 and pass those requests on to the corresponding device 116. Theoretically the ATM terminal application 114 will be able to run on any vendor's ATM hardware 120 as long as both the ATM terminal application 114 and the vendor's implementation of the SPs 118 adhere to the WOSA/XFS specifications.
Another example of an emerging industrial standard for an ATM hardware/software architecture is J/XFS (Java/eXtensions for Financial Services). Unlike WOSA-XFS which is designed for Microsoft Windows® platforms only, J/XFS is a Java® based architecture that may be implemented on any hardware/software platform that supports a Java® Virtual Machine (JVM). As shown in FIG. 2, a J/XFS enabled ATM 210 may include a J/XFS Kernel. The J/XFS Kernel is similar in functionality to the previously described WOSA/XFS Manager 112, however the J/XFS Kernel runs in a JVM 224. The J/XFS Kernel is operative responsive to commands from an ATM terminal application 214 to have a device service layer 220 control the operation of ATM devices 216. Like the previously described SPs 18, the device service layer 220 includes vendor provided device services 218 that correspond to the vendor's hardware devices 216.
As with the WOSA/XFS architecture, the ATM terminal application 214 will theoretically be able to run on any vendor's ATM hardware as long as both the ATM terminal application 214 and the vendor's implementation of the device services 218 adhere to the J/XFS specifications. Unfortunately with each of these described architectures there are “grey” areas within the standards that are subject to vendor interpretation. Because of these “grey” areas some vendors have created WOSA/XFS SPs that work differently for the same type of device as another vendor's SPs. Also, some vendors have deliberately made modifications to portions of an SP interface or to its operation for reasons that are uniquely theirs. The consequence of this is that what is intended to be a cross-vendor ATM application will most likely have to be modified or “tweaked” before it will truly operate with another vendor's SPs.
For example the WOSA/XFS standard provides a number of different methods for having a card reader SP interface with a card reader for returning information read from a card. These methods include a first method of passing individually selected information and a second method of passing all the card information in a single form. Although it would seem that an application could use either method to retrieve card information from any vendor's card reader, in reality one vendor's card reader SP may only support the first method, whereas a second vendor's card reader SP may only support the second method. These types of incompatibilities or differences in interpretation of the WOSA/XFS standard undermine the intended goal of cross-vendor compatibility between ATM applications and ATM hardware.
Although the J/XFS architecture is just being developed it shares the similar WOSA/XFS architecture limitation of using device services that are vendor provided. As a result different vendor interpretations of the J/XFS specification have the potential of forcing developers to write modified versions of their ATM terminal applications for each vendor's ATM platform. Consequently there exists a need for an ATM architecture that addresses these deficiencies in the WOSA/XFS or J/XFS architectures, or any other ATM architecture that is subject to vendor interpretation for developing device drivers.
In general each of the previously described XFS architectures defines a standard for the lowest common denominator of ATM hardware features. Unfortunately by including only those features that are common to all ATM hardware devices, the XFS standards cannot include interfaces to unique features associated with a vendor's particular implementation of a transaction function device. One example of unique features that are not implemented in the XFS interfaces includes access to low level diagnostic testing of individual hardware components of a device. Such control over low level hardware functionality can be very useful when troubleshooting problems with a specific component such as a motor or sensor. Unfortunately as each vendor may mechanically and/or electronically construct a particular type of device completely differently than another vendor, the XFS standards have not attempted to implement methods for testing low level vendor specific hardware. Consequently there further exists a need for an XFS enabled ATM that offers low level diagnostic testing of ATM hardware.